﻿//------------------------------------------------------------------------------
// ╭─────────────────────────────╮
// │ ╭─╮     ╭─╮              TM │   ╠═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╣
// │ │ │     │ │                 │                                           ☺  
// │ │ ╰───╮ │ │ ╭─────╮ ╭─────╮ │     Name:Wedn.Net BLL.LinkManager ♮ ♪ ♩
// │ │ ╭─╮ │ │ │ │ ╭─╮ │ │ ╭─╮ │ │                                    ♫ ♭      
// │ │ ╰─╯ │ │ │ │ ╰─╯ │ │ ╰─╯ │ │     Author:iceStone               ♬ ♪       
// │ └─────╯ └─╯ ╰─────╯ ╰───╮ │ │     Chinese:汪磊                              
// │                     ┌───╯ │ │                                              
// │                     ╰─────╯ │   ╠═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╬═╣
// ╰─────────────────────────────╯                                              
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using Wedn.Net.Common;
using Wedn.Net.Model;
using Wedn.Net.Utility;

namespace Wedn.Net.BLL
{
    /// <summary>
    /// Link管理类 LinkManager
    /// </summary>
    public partial class LinkManager
    {
        /// <summary>
        /// 根据传入委托筛选出对应的数据实体集合
        /// </summary>
        /// <param name="where">筛选条件表达式</param>
        /// <returns>查询到数据实体集合</returns>
        public override IQueryable<Link> Select(Expression<Func<Link, bool>> where)
        {
            var res = CacheHelper.GetCache<IQueryable<Link>>(WednStruct.LinkCacheKey);
            if (res == null)
            {
                res = base.Select(r => true);
                CacheHelper.SetCache(WednStruct.LinkCacheKey, res);
            }
            return res.Where(where);
        }

        /// <summary>
        /// 根据传入委托筛选出对应的数据实体集合
        /// </summary>
        /// <param name="where">筛选条件表达式</param>
        /// <returns>查询到数据实体集合</returns>
        public IList<Link> SelectFormatList(Func<Link, bool> where)
        {
            var res = CacheHelper.GetCache<IList<Link>>(WednStruct.LinkCacheKey);
            if (res == null)
            {
                res = base.Select(r => true).ToList();
                CacheHelper.SetCache(WednStruct.LinkCacheKey, res);
            }
            return res.Where(where).ToList();
        }
    }
}
